package com.samba.sessions;

import java.util.Collection;
import java.util.List;

import com.samba.entites.Category;
import com.samba.entites.CreditProjetUtilisateur;
import com.samba.entites.Projet;
import com.samba.entites.Type;
import com.samba.entites.Utilisateur;

public interface RichClientServiceDAO {

	public abstract Utilisateur addUser(Utilisateur user);

	public abstract Utilisateur updateUser(Utilisateur user);

	public abstract Utilisateur deleteUser(Utilisateur user);

	public abstract void removeUserById(int id);

	public abstract Collection<Utilisateur> findAllUsers();

	public abstract Utilisateur findUserById(Integer id);

	public abstract List<Utilisateur> findUserWithFirstnameLike(
			String firstnameLike);

	public abstract Utilisateur findUserFromProjeet(Projet projet);

	public abstract Utilisateur findUserFromLentProjet(
			CreditProjetUtilisateur creditProjt);

	public abstract Type addType(Type type);

	public abstract void deleteType(Type type);

	public abstract Type updateType(Type type);

	public abstract Collection<Type> findAllTypes();

	public abstract Category addCategory(Category category);

	public abstract Category updateCategory(Category category);

	public abstract void deleteCategory(Category category);

	public abstract Collection<Category> findCategory();

	public abstract Projet addProjet(Projet projet);

	public abstract void removeProjet(Projet projet);

	public abstract Projet updateProjet(Projet projet);

	public abstract Collection<Projet> findAllProjetsByUser(Utilisateur user);

	public abstract Projet findProjetById(Integer id);

	public abstract Collection<Projet> findProjetsByUserId(int userId);

	public abstract Projet linkAProejtToAUser(Integer idProjet, Integer idUser);

	public abstract CreditProjetUtilisateur addCreditProjetUtilisateur(Projet projet,
			CreditProjetUtilisateur credit);
}
